#ifndef _UVM_PUBLIC_
#define _UVM_PUBLIC_

#if defined(_WIN32) || defined(WIN32)        /**Windows*/
#ifndef _UVM_API
#ifdef UVM_EXPORT
#define _UVM_API		_declspec(dllexport)
#elif defined(UVM_IMPORT)
#define _UVM_API		_declspec(dllimport)
#else
#define _UVM_API		extern
#endif
#endif
#else
#ifndef _UVM_API
#define _UVM_API       extern
#endif
#endif

#include <stdint.h>

enum UVM_ERROR
{
    UVM_ERROR_TCPPOOL_MAXCONN = 100
};

typedef struct s_uvm {
    void *data;
} uvm_t;

typedef void(*uvm_async_cb)(uvm_t* uvm, void* data);

_UVM_API char* url_encode(char *s, int len, int *new_length);

_UVM_API int url_decode(char *str, int len);

#endif